29a39114e94b6f9296cf26c017fe2ac80417c53d,src/main/java/de/ids_mannheim/korap/query/spans/RelationSpans.java,RelationSpans,readPayload,#CandidateSpan#,181
Before Change
cs.setLeftEnd(cs.start + 1);
cs.setRightStart(bb.getInt(1));
cs.setRightEnd(bb.getInt(5));
cs.setLeftId(bb.getShort(9)); // left id
cs.setRightId(bb.getShort(11)); // right id
if (length > 13) {
cs.setSpanId(bb.getShort(13)); // relation id
}
}
else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_TERM.value) { // length
// 15
cs.setEnd(bb.getInt(1));
cs.setLeftEnd(cs.end);
i = bb.getInt(5);
cs.setRightStart(i);
cs.setRightEnd(i + 1);
cs.setLeftId(bb.getShort(9)); // left id
cs.setRightId(bb.getShort(11)); // right id
if (length > 13) {
cs.setSpanId(bb.getShort(13)); // relation id
}
}
else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_ELEMENT.value) {
// length 19
cs.setEnd(bb.getInt(1));
cs.setLeftEnd(cs.end);
cs.setRightStart(bb.getInt(5));
cs.setRightEnd(bb.getInt(9));
cs.setLeftId(bb.getShort(13)); // left id
cs.setRightId(bb.getShort(15)); // right id
if (length > 17) {
cs.setSpanId(bb.getShort(17)); // relation id
}
After Change
* @param cs
* a CandidateRelationSpan
*/
private void readPayload (CandidateSpan cs) {
List<byte[]> payload = (List<byte[]>) cs.getPayloads();
int length = payload.get(0).length;
ByteBuffer bb = ByteBuffer.allocate(length);
bb.put(payload.get(0));
cs.setLeftStart(cs.start);
int i;
this.payloadTypeIdentifier = bb.get(0);
if (payloadTypeIdentifier == PayloadTypeIdentifier.TERM_TO_TERM.value) { // length 11
i = bb.getInt(1);
cs.setLeftEnd(cs.start + 1);
cs.setRightStart(i);
cs.setRightEnd(i + 1);
if (length > 5) {
cs.setLeftId(bb.getShort(5)); // left id
cs.setRightId(bb.getShort(7)); // right id
cs.setSpanId(bb.getShort(9)); // relation id
}
}
else if (payloadTypeIdentifier == PayloadTypeIdentifier.TERM_TO_ELEMENT.value) { // length
// 15
cs.setLeftEnd(cs.start + 1);
// 1-4 start element offset
// 5-8 end element offset
cs.setRightStart(bb.getInt(9));
cs.setRightEnd(bb.getInt(13));
if (length > 17) {
cs.setLeftId(bb.getShort(17)); // left id
cs.setRightId(bb.getShort(19)); // right id
cs.setSpanId(bb.getShort(21)); // relation id
}
}
else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_TERM.value) { // length
// 15
// 1-4 start element offset
// 5-8 end element offset
cs.setEnd(bb.getInt(9));
cs.setLeftEnd(cs.end);
i = bb.getInt(13);
cs.setRightStart(i);
cs.setRightEnd(i + 1);
if (length > 13) {
cs.setLeftId(bb.getShort(17)); // left id
cs.setRightId(bb.getShort(19)); // right id
cs.setSpanId(bb.getShort(21)); // relation id
}
}
else if (payloadTypeIdentifier == PayloadTypeIdentifier.ELEMENT_TO_ELEMENT.value) {
// length 19
// 1-4 start left-element offset
// 5-8 end left-element offset
// 9-12 start right-element offset
// 13-16 end right-element offset
cs.setEnd(bb.getInt(17));
cs.setLeftEnd(cs.end);
cs.setRightStart(bb.getInt(21));
cs.setRightEnd(bb.getInt(25));
if (length > 17) {
cs.setLeftId(bb.getShort(29)); // left id
cs.setRightId(bb.getShort(31)); // right id
cs.setSpanId(bb.getShort(33)); // relation id
}
}